hysop.backend.device.codegen.kernels.directional_remesh module

class hysop.backend.device.codegen.kernels.directional_remesh.DirectionalRemeshKernelGenerator(typegen, work_dim, ftype, nparticles, nscalars, sboundary, is_inplace, scalar_cfl, remesh_kernel, use_short_circuit=None, unroll_loops=None, group_scalars=None, remesh_criteria_eps=None, use_atomics=False, symbolic_mode=False, debug_mode=False, tuning_mode=False, known_vars=None)[source]

Bases: KernelCodeGenerator

build_requirements(typegen, work_dim, itype, ftype, sboundary, nparticles, nscalars, nfields, group_scalars, symbolic_mode, remesh_criteria_eps, use_atomics, remesh_kernel, use_short_circuit, known_vars, debug_mode)[source]
static codegen_name(work_dim, remesh_kernel, ftype, nparticles, nscalars, remesh_criteria_eps, use_atomics, is_inplace)[source]
gen_kernel_arguments(typegen, work_dim, itype, ftype, nparticles, nscalars, nfields, group_scalars, local_size_known, is_inplace, debug_mode, kernel_reqs, known_vars, symbolic_mode)[source]
gencode()[source]
get_global_size(work_size, local_work_size, work_load=None)[source]

Return global_work_size from effective work_size and given local_work_size global_work_size will be a multiple of local_work_size

classmethod get_max_global_size(work_size, work_load, nparticles, **kargs)[source]

Return global_work_size from effective work_size without taking into account local_work_size alignment

required_workgroup_cache_size(local_work_size)[source]

Return a tuple of required (static,dynamic,total) cache bytes per workgroup

classmethod scalars_out_cache_ghosts(scalar_cfl, remesh_kernel)[source]